package com.un.ebs.product.domain;

import java.util.Date;
import com.un.ebs.product.enums.ProductSkuResourceStatusEnum;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.stereotype.Component;
import lombok.Data;
import com.un.ebs.core.metadata.DbField;

/**
 * (ProductExt)表实体类
 *
 * @author liubo
 * @since 2020-12-15 15:25:49
 */
@Data
@Component
@TableName("v_product_ext")
@SuppressWarnings("serial")
public class ProductExt extends Model<ProductExt> {

                
    @DbField(name = "id",  length = 40 , precision = 0)
    private String id;
                
    @DbField(name = "code",  length = 40 , precision = 0)
    private String code;
                
    @DbField(name = "name",  length = 100 , precision = 0)
    private String name;
                
    @DbField(name = "name_as",  length = 2100 , precision = 0)
    private String nameAs;
                
    @DbField(name = "sale_attr_desc",  length = 2000 , precision = 0)
    private String saleAttrDesc;
                
    @DbField(name = "column_attr_desc",  length = 2000 , precision = 0)
    private String columnAttrDesc;
                
    @DbField(name = "query_attr_desc",  length = 2000 , precision = 0)
    private String queryAttrDesc;
                
    @DbField(name = "class_id",  length = 40 , precision = 0)
    private String classId;
                
    @DbField(name = "unit_type",  length = -1 , precision = 0)
    private Integer unitType;
                
    @DbField(name = "charge_type",  length = -1 , precision = 0)
    private Integer chargeType;
                
    @DbField(name = "purchase_type",  length = -1 , precision = 0)
    private Integer purchaseType;
                
    @DbField(name = "deliver_ready_time",  length = 10 , precision = 0)
    private String deliverReadyTime;
                
    @DbField(name = "charge_min_money",  length = 10 , precision = 4)
    private Double chargeMinMoney;
                
    @DbField(name = "class_name",  length = 40 , precision = 0)
    private String className;
                
    @DbField(name = "sale_large_class_id",  length = 40 , precision = 0)
    private String saleLargeClassId;
                
    @DbField(name = "sale_large_class_name",  length = 100 , precision = 0)
    private String saleLargeClassName;
                
    @DbField(name = "sale_medium_class_name",  length = 100 , precision = 0)
    private String saleMediumClassName;
                
    @DbField(name = "sale_small_class_name",  length = 100 , precision = 0)
    private String saleSmallClassName;
                
    @DbField(name = "sale_medium_class_id",  length = 40 , precision = 0)
    private String saleMediumClassId;
                
    @DbField(name = "sale_small_class_id",  length = 40 , precision = 0)
    private String saleSmallClassId;
            
    //@TableLogic
    @DbField(name = "is_delete",  length = -1 , precision = 0)
    private Boolean isDelete;
                
    @DbField(name = "is_sku_show",  length = -1 , precision = 0)
    private Integer isSkuShow;
                
    @DbField(name = "is_sale",  length = -1 , precision = 0)
    private Boolean isSale;
                
    @DbField(name = "price",  length = 18 , precision = 0)
    private Double price;
                
    @DbField(name = "tenant_id",  length = 40 , precision = 0)
    private String tenantId;
        
    @TableField(fill = FieldFill.INSERT)            
    @DbField(name = "create_time",  length = -1 , precision = 0)
    private Date createTime;
        
    @TableField(fill = FieldFill.INSERT)            
    @DbField(name = "create_at",  length = 40 , precision = 0)
    private String createAt;
                
    @TableField(fill = FieldFill.UPDATE)    
    @DbField(name = "last_modified_time",  length = -1 , precision = 0)
    private Date lastModifiedTime;
                
    @TableField(fill = FieldFill.UPDATE)    
    @DbField(name = "last_modified_at",  length = 40 , precision = 0)
    private String lastModifiedAt;
                
    @DbField(name = "sku_count",  length = -1 , precision = 0)
    private Integer skuCount;
                
    @DbField(name = "price_min",  length = 10 , precision = 2)
    private Double priceMin;
                
    @DbField(name = "price_max",  length = 10 , precision = 2)
    private Double priceMax;
                
    @DbField(name = "price_avg",  length = 38 , precision = 6)
    private Double priceAvg;
                
    @DbField(name = "qty_sum",  length = 38 , precision = 2)
    private Double qtySum;
                
    @DbField(name = "resource_status",  length = -1 , precision = 0)
    private ProductSkuResourceStatusEnum resourceStatus;
                
    @DbField(name = "spu_payment_status",  length = -1 , precision = 0)
    private Integer spuPaymentStatus;
                
    @DbField(name = "spu_pre_order_timeout_day",  length = -1 , precision = 0)
    private Integer spuPreOrderTimeoutDay;
                
    @DbField(name = "price_confirm_type",  length = -1 , precision = 0)
    private Integer priceConfirmType;
                
    @DbField(name = "sale_type",  length = -1 , precision = 0)
    private Integer saleType;
                
    @DbField(name = "buy_min_qty",  length = -1 , precision = 0)
    private Integer buyMinQty;
                
    @DbField(name = "buy_max_qty",  length = -1 , precision = 0)
    private Integer buyMaxQty;
                
    @DbField(name = "sale_start",  length = -1 , precision = 0)
    private Date saleStart;
                
    @DbField(name = "sale_end",  length = -1 , precision = 0)
    private Date saleEnd;
                
    @DbField(name = "is_deliver_flow",  length = -1 , precision = 0)
    private Boolean isDeliverFlow;
                
    @DbField(name = "is_deliver_audit_status",  length = -1 , precision = 0)
    private Boolean isDeliverAuditStatus;
                
    @DbField(name = "is_must_defunct_by_order",  length = -1 , precision = 0)
    private Boolean isMustDefunctByOrder;
                
    @DbField(name = "is_must_defunct_tomb_sku_by_order",  length = -1 , precision = 0)
    private Boolean isMustDefunctTombSkuByOrder;
                
    @DbField(name = "warehouse_desc",  length = 100 , precision = 0)
    private String warehouseDesc;
                
    @DbField(name = "deliver_start",  length = -1 , precision = 0)
    private Date deliverStart;
                
    @DbField(name = "deliver_end",  length = -1 , precision = 0)
    private Date deliverEnd;
                
    @DbField(name = "is_book",  length = -1 , precision = 0)
    private Boolean isBook;
                
    @DbField(name = "pre_time_book_qty",  length = -1 , precision = 0)
    private Integer preTimeBookQty;
                
    @DbField(name = "remark",  length = 2000 , precision = 0)
    private String remark;
                
    @DbField(name = "sort",  length = -1 , precision = 0)
    private Integer sort;
                
    @DbField(name = "class_sort",  length = -1 , precision = 0)
    private Integer classSort;
                
    @DbField(name = "logo_image",  length = 200 , precision = 0)
    private String logoImage;
                
    @DbField(name = "name_sort",  length = -1 , precision = 0)
    private Integer nameSort;
                
    @DbField(name = "resource_status_desc",  length = 10 , precision = 0)
    private String resourceStatusDesc;

    @DbField(name = "purchase_quality_proportion", length = 18, precision = 0)
    private double purchaseQualityProportion;

    @DbField(name = "sale_quality_proportion", length = 18, precision = 0)
    private double saleQualityProportion;

    @DbField(name = "production_quality_proportion", length = 18, precision = 0)
    private double productionQualityProportion;


}